准备:
解压hadoop-2.6.0-cdh5.7.0.tar.gz源码包,看到里面有个BUILDING.txt文件,里面列出了编译所需依赖组件。
Requirements:
- Unix System
- JDK 1.7+
- Maven 3.0 or later
- Findbugs 1.3.9 (if running findbugs)
- ProtocolBuffer 2.5.0
- CMake 2.6 or newer (if compiling native code), must be 3.0 or newer on Mac
- Zlib devel (if compiling native code)
- openssl devel ( if compiling native hadoop-pipes )
- Internet connection for first build (to fetch all Maven and Hadoop dependencies)
转载链接文章中或通过yum安装或通过自己下载提供了所有正确版本组件,并将已下载组件通过百度云分享。
我想补充一点的是,yum安装可能报出Another app is currently holding the yum lock; waiting for it to exit...
的错误,可参考https://blog.csdn.net/testcs_...
强制关闭yum进程来解决。
编译:
根据BUILDING.txt提示
Build options:
- Use -Pnative to compile/bundle native code * Use -Pdocs to
generate & bundle the documentation in the distribution (using -Pdist)
- Use -Psrc to create a project source TAR.GZ * Use -Dtar to create a TAR with the distribution (using -Pdist)
Building distributions:
Create binary distribution without native code and without
documentation:$ mvn package -Pdist -DskipTests -Dtar
Create binary distribution with native code and with documentation:
$ mvn package -Pdist,native,docs -DskipTests -Dtar
cd到解压后的hadoop-2.6.0-cdh5.7.0源码目录下,使用mvn -e clean package -Pdist,native -DskipTests -Dtar
编译(使用-e
参数输出错误堆栈信息,有利于定位),编译完成后,默认会在源码根目录的hadoop-dist目录下生成target,里面的hadoop-2.6.0-cdh5.7.0文件夹就是已经编译好并已解压的hadoop了(直接用的),可以将其拷贝到自定义的位置进行部署配置。
[root@NN1 hadoop-2.6.0-cdh5.7.0]# ./bin/hadoop checknative
19/04/10 11:22:34 INFO bzip2.Bzip2Factory: Successfully loaded & initialized native-bzip2 library system-native
19/04/10 11:22:34 INFO zlib.ZlibFactory: Successfully loaded & initialized native-zlib library
Native library checking:
hadoop: true /root/hadoop-c/hadoop-2.6.0-cdh5.7.0-target/hadoop-2.6.0-cdh5.7.0/lib/native/libhadoop.so.1.0.0
zlib: true /lib64/libz.so.1
snappy: true /lib64/libsnappy.so.1
lz4: true revision:99
bzip2: true /lib64/libbz2.so.1
openssl: true /lib64/libcrypto.so
可以看到编译的hadoop支持了各种压缩,亲测有效!
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。